Cloudflare Demo — Vercel + Supabase Customer

~8–10 min · Hyperdrive-first, narrow positioning · "Italic quotes" = phrases, your words are better · ▶ = action

Who you're talking to

Supabase users are a different breed from PlanetScale users. Assume these things until proven otherwise:

Their actual pain (you'll hear one or two):

BE HONEST WITH THIS CUSTOMER. Supabase users hate sales-speak. We don't have a managed Auth product. We don't have a hosted Postgres-as-a-service. Don't pretend we do. Position narrowly: "Hyperdrive accelerates your Supabase. Keep using Supabase for what it does well. Use Cloudflare for what we do well." That's the winning move. Don't oversell.

Ask these in the first 5 minutes

Tells you what's actually on their mind. Don't skip.

1. "Which parts of Supabase are you using — just the database, or also Auth, Storage, Realtime?" Critical. Tells you what you can and cannot help with. If they say "everything" — narrow your positioning hard.
2. "What's your Supabase database region? Where are most of your users?" If users are far from the DB region (e.g. global users, US-East database) → Hyperdrive race demo will land hard.
3. "What's your P95 query latency from Vercel functions to Supabase today?" If P95 > 100ms — you've got their attention. If under 50ms — Hyperdrive still helps with cold connection time, not as dramatic.
4. "Are you using Supabase cloud, or did you ever consider self-hosting?" Self-host curious = highly technical, values control. Adjust your pitch to be more architecture-focused, less features-focused.
5. "What brought you to Cloudflare today? Cost, performance, AI, or something specific?" Don't assume cost. Supabase customers often come for performance or platform consolidation reasons.
6. "Are you running anything on Cloudflare today — DNS, CDN, anything?" If yes → easier sell, just adding services. If no → bigger consolidation play, longer cycle.

Mapping Their stack to ours

Reference for yourself — don't show this slide. Note: green = direct replacement, yellow = partial, gray = no equivalent.

Supabase pieceCloudflare answerPositioning
Supabase Postgres Hyperdrive (in front of Supabase) The lead. Keep Supabase. Make it 5x faster from the edge. Zero code change.
Supabase Auth No equivalent Be honest. Cloudflare Access is for B2B/internal, not consumer auth. Tell them to keep Supabase Auth.
Supabase Storage R2 Zero egress vs Supabase's $0.09/GB. Real savings if they serve files/images.
Supabase Realtime Durable Objects + WebSockets Different architecture (not LISTEN/NOTIFY). Better at scale, but they have to rebuild. Don't push it unless they raise it.
Supabase Edge Functions Workers Workers is more mature, broader geography (330+ cities vs Supabase's ~12 regions). Direct replacement.
Supabase Vector / pgvector Vectorize + Workers AI Bundled with embedding models. Cheaper than running pgvector at scale.
Vercel (compute) Workers Cheaper, broader edge, no surprise bills, integrates natively with Hyperdrive.
Vercel Blob / Image R2 + Cloudflare Images Zero egress on R2. Live math if they have bandwidth numbers.

Before the call

0. Open (~1 min)

"You're on Vercel and Supabase. That's a stack I actually like a lot — it gets people from zero to production fast. I'm not here to tell you to rip it out. I'm here to show you how to make it faster and cheaper without migrating anything. Eight minutes. Then you tell me what's interesting."
Adjust opening based on their Q5 answer:

If cost: "We'll look at egress fees first — that's where the easy savings are."
If performance: "Let's start with database latency. Every Supabase customer has a cross-region story."
If AI / something specific: Lead with that. Skip the generic order.
If consolidation: Be careful — Supabase is intentionally an all-in-one. Don't promise full replacement.

1. Hyperdrive — Accelerate Your Supabase Postgres (~3 min — THE HOOK)

"Quick setup: Hyperdrive sits between your Worker or your Vercel function and your Postgres database. Same Postgres wire protocol — so same driver, same ORM, same credentials. The only thing that changes is the connection string you point at."
"What it does: pools connections at the Cloudflare edge — your function doesn't pay the seven-round-trip cost of opening a new database connection every request. Plus optional read-query caching. This is exactly the problem you have today — a Vercel function spinning up in Tokyo making a fresh connection to your Supabase database in US-East."

▶ Switch to demo app · Click Sample Query first (warms it up)

The Race — Direct vs Hyperdrive

▶ Click the red Race: Direct vs Hyperdrive button

What you'll see (numbers vary, but the story is the same):
{ "test": "Hyperdrive vs Direct PostgreSQL Connection", "iterations": 5, "direct": { "label": "Direct connection (no pooling, no caching)", "connectMs": 40, // SLOW: full handshake every time "queryTimingsMs": [3, 3, 3, 2, 3], "totalMs": 54 }, "hyperdrive": { "label": "Cloudflare Hyperdrive (pooled and cached)", "connectMs": 2, // FAST: pooled connection "queryTimingsMs": [39, 4, 1, 2, 1], "totalMs": 49 }, "summary": { "speedup": "5.8x faster with Hyperdrive", "connectionSavings": "38ms saved on connection setup", "cacheBenefit": "First query: 39ms, cached: 1ms" } }

▶ Click the button a second time — caching kicks in

"Same query, same Postgres database, same Worker. The only difference is the connection path. 5.8x faster on warm. And this benchmark database is on the same continent. For your reads from Supabase US-East to Vercel functions running in Europe or Asia — Hyperdrive turns hundred-millisecond round trips into single digits."

⏸ Pause. Let it sit.

"To be crystal clear about what just happened: I didn't replace your database. I didn't migrate your data. I didn't touch your code. Your team keeps using Supabase, keeps using your Postgres schema, keeps using your row-level security policies, keeps using pg_dump for backups. The app just gets faster the day you flip the connection string."
The mic-drop offer (only if they're a real prospect):
"After this call, give me a read-only Supabase database connection string. I'll point Hyperdrive at it and send you back actual benchmark numbers on your data within a week. Sixty seconds of setup. No commitment."
Watch out: Supabase has its own connection pooler (Supavisor / pgBouncer). They may ask: "We already pool connections — what does Hyperdrive add?" Answer: Supavisor pools at the database. Hyperdrive pools at the edge — 330+ cities. Your function still pays full latency to reach Supavisor. With Hyperdrive, the pooled connection lives where your users are.
Watch out: Supabase uses row-level security (RLS) policies tied to JWT auth. Hyperdrive works fine with RLS — the JWT is in the SQL connection's session context. Don't get tripped up if they ask.

2. R2 — Cut Your Storage Bandwidth Bill (~2 min)

"If you're using Supabase Storage — or Vercel Blob — you're paying egress. Supabase charges $0.09 per gigabyte. Vercel similar. R2 is S3-compatible storage with zero egress fees."

▶ Click List Objects on demo page

"Same APIs as S3. Anything that talks to S3 talks to R2 — including direct uploads, signed URLs, lifecycle rules."

Live math (if they shared traffic numbers)

Supabase Storage: $0.09/GB egress, ~$0.021/GB storage.
R2: $0 egress, $0.015/GB storage.

Their case: If they serve 2 TB/month of user-uploaded files →
   Supabase Storage: ~$180/month bandwidth + storage
   R2: ~$30/month storage only
Annual delta: ~$1,800. "Bigger if they're growing."

Watch out: If they use Supabase Storage with RLS policies tied to Postgres auth, migrating to R2 means rebuilding access control via Workers + signed URLs. Don't oversell ease of migration. It's doable, but it's work. Position R2 for new storage use cases first.

3. D1 — For Side Projects and New Services (~1.5 min · OPTIONAL)

"Skip unless they ask about alternatives to Supabase or mention starting new services. Supabase customers usually love Supabase. Don't try to displace it."
"For things where you don't need full Postgres — internal tools, side projects, low-traffic services — D1 has a free tier that handles millions of requests. SQLite under the hood. Worth knowing exists. Not a Supabase replacement."
Be honest: D1 is SQLite. Supabase is full Postgres. They are not interchangeable. Don't pitch D1 as "swap your Supabase for this." It's "for new things, here's an option."

4. Vectorize + Workers AI — If They Mention AI (~1.5 min · CONDITIONAL)

Only run this section if they mention AI, RAG, embeddings, semantic search, or pgvector. If they mention pgvector specifically — this is your moment.

Set up the concept (30 sec)

"You're probably using pgvector inside Supabase today. It works, and for small workloads it's the right choice — your vectors live next to your data, one database to manage. But there's an architectural problem nobody warns you about: vector similarity queries are CPU-heavy, and they compete with your application queries on the same Postgres instance. A user runs a 'find similar' query, and your dashboard slows down. Vectorize separates those two workloads."

Run it (45 sec)

▶ Click Search: "fast database"

"My search query is 'fast database.' My stored documents don't contain those exact words anywhere. A keyword search returns nothing. Watch what Vectorize returns: top match is Hyperdrive at 0.75 similarity — 'Hyperdrive accelerates queries to your existing Postgres database.' The system understood that 'fast' connects to 'accelerate,' and 'database' connects to the Hyperdrive description — no keyword match required. Same pattern you'd use to build a docs search engine, a support bot, or any RAG application."

Land the payoff (30 sec)

"What you just saw ran as one Worker call: embedding the query with Workers AI, searching the index in Vectorize, returning ranked matches. Same Worker, three lines of code, two service bindings. No Pinecone API key to manage, no OpenAI embedding bill, no separate vector database to operate — and crucially, not competing with your Supabase Postgres for CPU."
The honest threshold: "pgvector inside Supabase is great up to about 100,000 vectors. Above that, your application queries start to feel the contention. If you're under that threshold, keep pgvector. If you're above it — or planning to be — Vectorize is the dedicated solution that won't slow down the rest of your stack."

5. Workers — The Long-Term Vercel Story (~1 min · light touch)

Don't say: "Workers and Vercel Edge are the same thing in different regions." That's incorrect — separate V8 implementations — and a technical customer will catch you. Don't say: "Vercel runs on Cloudflare." Also wrong — Vercel has their own CDN and runs compute on AWS.

The honest comparison (60 sec)

"Last topic, and I'll keep it short because today is really about your database. You don't have to leave Vercel — their deployment UX is genuinely best-in-class for Next.js. But there's a story worth knowing about how your code actually runs over there. Most Vercel Functions execute on AWS Lambda containers, with 100-millisecond-plus cold starts. Vercel has an opt-in Edge Runtime that uses V8 isolates with sub-100ms starts — but Vercel is now actively telling their own customers to migrate away from Edge back to Node.js Lambda. It's in their docs."
"Workers made the opposite bet. We doubled down on V8 isolates and added Node.js compatibility on top, so you get sub-5ms cold starts and most npm packages just work. Add 330+ cities versus Lambda's ~30 AWS regions, plus per-request pricing that's typically 30-50% cheaper at scale, and the math gets interesting. When you're ready to benchmark — not today — we can run a parallel deployment on real traffic and compare the bill side-by-side."

The Payoff — One Change, Real Numbers (~1.5 min)

What you actually showed them

"One number to remember: the only thing that changes in your code is one environment variable. The connection string points at Hyperdrive instead of pointing directly at Supabase. That's the bet. No migration. No new vendor for your auth or your data. Just acceleration."

Close (~1 min)

"My ask: a read-only connection string to your Supabase database. I'll wire it up to Hyperdrive this week and send you back actual benchmarks on your data. No procurement, no contract, no commitment. If the numbers don't impress your engineering lead, walk away. If they do, we talk about R2 next. That's the whole sales process."
If they're cautious:
"No pressure. Try the demo URL on your phone — same race button, same Postgres benchmark. Forward it to your team. Real-time proof is more compelling than a sales call."
If they're technical and asking architecture questions:
"I'm happy to do a 30-minute deep-dive on Hyperdrive's caching semantics, connection pooling internals, or how it interacts with Supabase's RLS. Schedule it after you've tried the demo."
THE VERCEL + SUPABASE POINT

Supabase is a great database. Vercel is a great deploy target.
The slow part is the network between them — and that's exactly what Hyperdrive fixes.

"Don't migrate your stack. Just put us in front of it."

If something breaks during the demo


Likely objections — back-pocket answers

"Supabase already has a connection pooler (Supavisor). What does Hyperdrive add?"

This is the #1 question you'll get. Be ready.

"Supavisor pools connections at the database. Hyperdrive pools at the Cloudflare edge — 330+ cities globally. Two different problems. Supavisor saves Supabase from connection exhaustion. Hyperdrive saves your users from network latency. Your function still has to make a round trip to reach Supavisor in US-East. With Hyperdrive, the pooled connection lives where your user is."

"Does Hyperdrive work with row-level security (RLS)?"

"Yes, completely. RLS evaluates on the database side based on the JWT or session variables you set. Hyperdrive is just a connection layer — it doesn't bypass anything. Your existing RLS policies work unchanged."

"We use Supabase Auth heavily. Are you going to tell me to replace it?"

"No. Cloudflare doesn't have a managed consumer auth product. Keep Supabase Auth. I'm not here to replace your stack — I'm here to put Cloudflare in front of it."

"What about Supabase Realtime? We use it for live updates."

"Cloudflare has Durable Objects with WebSocket support — different architecture from Supabase's LISTEN/NOTIFY model. It scales better past a few thousand concurrent connections, but it's a rebuild, not a swap. If Realtime is working for you, keep it. If you're hitting scaling pain — that's a separate conversation worth having."

"Why not just put my Supabase database in multiple regions?"

"You can — Supabase has read replicas now. Two issues: (1) cost goes up linearly per region, (2) you still have to route reads correctly from your application code. Hyperdrive does both — global pooling and read caching — for free, without read replicas, and without changing your routing logic."

"How does Hyperdrive handle writes? Won't caching break things?"

"Hyperdrive only caches SELECT queries you mark cacheable, with a configurable TTL. INSERT, UPDATE, DELETE — these bypass the cache automatically. You control TTL per query. Default is 60 seconds, configurable to zero."

"Our app is Next.js with server actions hitting Supabase directly. Where does Workers fit?"

"Two paths: (1) Add Hyperdrive without touching your Next.js code — just change the database URL in your environment. (2) When you're ready, move the Next.js app to Cloudflare via OpenNext or the Next-on-Pages adapter. Step 1 is the bet today. Step 2 is later."

"How does this compare to Supabase Edge Functions?"

"Supabase Edge Functions run Deno in ~12 regions. Cloudflare Workers run V8 in 330+ cities. Workers also bind natively to D1, R2, Vectorize, Queues, KV — Supabase Edge Functions don't have that bundled ecosystem. For new edge compute, Workers wins on geography and platform breadth."

"Is Cloudflare actually production-ready for our size?"

"Workers handles 80M+ requests per second across the platform. Shopify, Discord, Canva, DoorDash all run on it. Hyperdrive is GA, in production at thousands of customers. Whatever your scale, you're not the biggest customer."

"What if we self-host Supabase? Does Hyperdrive still work?"

"Yes — Hyperdrive only needs a Postgres connection string. Wherever you host Supabase (self-hosted on your infra, on AWS, on Fly, on Hetzner) — Hyperdrive sits in front. Same value."

"What if we just want to try one thing?"

"Hyperdrive in front of Supabase. 30-minute setup. No code change beyond an environment variable. We'll show you benchmark numbers on your actual workload in a week. That's the whole pilot. Pass or fail decision at the end of the week."